package pers.zb.cloud.service.upms.service;


import pers.zb.cloud.service.upms.entity.SysMenu;
import pers.zb.cloud.service.upms.vo.MenuVo;

import java.util.List;

public interface MenuService extends BaseService<SysMenu>{

	/**
	 * 根据父ID获取菜单列表
	 *
	 * @param pid 父ID
	 * @param from 1 - 首页左侧菜单的加载   2 - 菜单列表页面的加载
	 * @param clientId
	 * @return
	 */
	List<MenuVo> getMenuListByPid(Long pid, int from, String clientId);

	/**
	 * 根据ID获取菜单
	 * @param id
	 * @return
	 */
	SysMenu getMenuById(Long id);

	/**
	 * 获取出自身外的其他所有可用的菜单
	 * @param id
	 * @return
	 */
    List<MenuVo> getMenuListByNotItself(Long id, String clientId);

	/**
	 * 更新菜单
	 */
	void updateMenu(SysMenu sysMenu) throws Exception;

	/**
	 * 删除菜单
	 */
    void deleteMenu(Long[] id) throws Exception;

	/**
	 * 判断是否具有子节点
	 */
	boolean haveChildrenMenu(Long id);

	/**
	 * 新增菜单
	 */
    void addMenu(SysMenu sysMenu) throws Exception;

}
